package com.winchain.chainbill.risk.biz.ctr.service.impl;

import com.shell.bee.base.utils.StringUtil;
import com.shell.bee.persistence.annotation.Pagination;
import com.shell.bee.persistence.model.PageLimit;
import com.shell.framework.utils.ParameterHelper;
import com.shell.governor.modules.vo.ParameterVo;
import com.winchain.chainbill.basic.cus.dao.CusRecDao;
import com.winchain.chainbill.basic.cus.vo.BasCustomerVo;
import com.winchain.chainbill.risk.biz.ctr.service.BizCtrService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service("bizCtrService")
public class BizCtrServiceImpl implements BizCtrService {
	@Autowired
	CusRecDao basCustomerDao;

	@Pagination
	public List<BasCustomerVo> findCustomerCtrls(PageLimit limit, BasCustomerVo basCustomerVo) {
		if (StringUtil.notEmpty(basCustomerVo.getSearchValue())) {
			basCustomerVo.setSearchValue(StringUtil.getParameterLike(basCustomerVo.getSearchValue()));
		}
		String[] tagCodes = { "FOCAL_CO", "MEMBER" };
		basCustomerVo.setTagCodes(tagCodes);
		basCustomerVo.setCusState("E");
		List<BasCustomerVo> customers = this.basCustomerDao.findCusForGrp(basCustomerVo);
		for (BasCustomerVo customer : customers) {
			List<ParameterVo> parameters = ParameterHelper.getParameterList("1", customer.getCusId(),
					basCustomerVo.getGrpId());
			Map<String, String> ctrs = new HashMap();
			for (ParameterVo p : parameters) {
				ctrs.put(p.getParmCode(), p.getParmValue());
			}
			customer.setBizCtrs(ctrs);
		}
		return customers;
	}

	public void updateBizCtr(String rlatId, String grpId, String code, String value) {
		ParameterVo parameter = new ParameterVo();
		parameter.setParmRlatId(rlatId);
		parameter.setParmCode(code);
		parameter.setParmValue(value);
		parameter.setEditor(grpId);
		ParameterHelper.updateParam(parameter);
	}
}
